查看原文
其他

C#各版本新增加功能(系列文章)

DotNet 2021-09-23

(给DotNet加星标,提升.Net技能


转自:张传宁
cnblogs.com/SavionZhang/p/11229640.html

本系列文章主要整理并介绍 C# 各版本的新增功能。


C# 8.0


C#8.0 于 2019年4月 随 .NET Framework 4.8 与 Visual Studio 2019 一同发布,但是当前处于预览状态。预计在2019年9月正式发布。


目前提供以下功能可供试用:


  • Readonly 成员


  • 默认接口成员【*重要,突破性的变革*】请参考:C#8.0 中使用默认接口成员更新接口


  • 模式匹配增强功能


    Using 声明


    Switch 表达式


    属性模式


    元组模式


    位置模式


  • 静态本地函数


  • 可处置的 ref 结构


  • 可为空引用类型


  • 异步流【*重要*】


  • 索引和范围


具体新增功能请查看《 C#8.0 新增功能》


C# 7.3


C#7.3 随 VS2017 v15.7 发布(2018年5月)。  自 Visual Studio 2017 版本 15.7 和 .NET Core 2.1 SDK 起,开始随附 C# 7.3。


具体新增功能请查看 C#7.3 新增功能


C# 7.2


C#7.2 随 VS2017 v15.5 发布(2017年11月)。自 Visual Studio 2017 版本 15.5 和 .NET Core 2.0 SDK 起,开始随附 C# 7.2。


具体新增功能请查看 C#7.2 新增功能


C# 7.1


C#7.1 随 VS2017 v15.3 发布(2017年8月)。  自 Visual Studio 2017 版本 15.3 和 .NET Core 2.0 SDK 起,开始随附 C# 7.1。


具体新增功能请查看 C#7.1 新增功能


C# 7.0


C#7.0 于 2017年3月 随 .NET 4.7 和 VS2017 发布。


C# 7.0 向 C# 语言添加了许多新功能:具体请查看 C#7.0 新增功能


C# 6.0


C#6.0 在 2015 年7月随着.NET Framework 4.6 一同发布,后期发布了.NET Framework 4.6.1,4.6.2。


C# 在 3.0 版和 5.0 版对面向对象的语言添加了主要的新功能。在 6.0 版中,它不再推出主导性的杀手锏,而是发布了很多使得 C# 编程更有效率的小功能。这些功能每一个都很有趣。但从整体来看,可以发现一个有趣的模式。


在此版本中,C# 消除语言样本,让代码更简洁且更具可读性。所以对喜欢简洁代码的用户来说,此语言版本非常成功。


具体功能请查看 C#6.0 新增功能


除了发布此版本,他们还做了另一件事,虽然这件事本身与传统的语言功能无关。他们发布了 Roslyn 编译器即服务。C# 编译器现在是用 C# 编写的,你可以使用编译器作为编程工作的一部分。


C# 5.0


C#5.0 在 2012 年2月随着.NET Framework 4.5 一同发布,后期发布了.NET Framework 4.5.1,4.5.2。5.0 版是C#语言有针对性的一个版本。 


对此版本中所做的几乎所有工作都归入另一个突破性语言概念:适用于异步编程的 async 和 await 模型。


  •  C#5.0 新增功能01 异步编程


  •  C#5.0 新增功能02 调用方信息

 

C# 4.0


C# 4.0 版和 Visual Studio 2010 一起发布于 2010 年4月,对应 .NET Framework 4.0。C# 4.0 版很难达到 3.0 版的创新水平。 


在 3.0 版中,C# 已经完全从 Java 的阴影中脱颖而出,崭露头角。很快成为一种简洁精炼的语言。此版本引入了以下新功能:


  •  C#4.0 新增功能01 动态绑定 (dynamic 类型)


  •  C#4.0 新增功能02 命名实参和可选实参


  •  C#4.0 新增功能03 泛型中的协变和逆变


  •  C#4.0 新增功能04 嵌入的互操作类型

 

C# 3.0


C# 3.0 版和 Visual Studio 2008 一起发布于 2007 年下半年,但完整的语言功能是在 .NET Framework 3.5 版中发布的。 此版本标示着 C# 发展过程中的重大更改。 C# 成为了真正强大的编程语言。


下面列出的功能中大多数似乎都是不可或缺,难以分割的。 它们的组合都是经过巧妙布局。 我们通常认为 C# 版本的杀手锏是查询表达式,也就是语言集成查询 (LINQ)。LINQ 的构造可以建立在更细微的视图检查表达式树、Lambda 表达式以及匿名类型的基础上。 不过无论如何 C# 3.0 都提出了革命性的概念。 C# 3.0 开始为 C# 转变为面向对象/函数式混合语言打下基础。


 C#3.0 新增功能01 自动实现的属性

 C#3.0 新增功能02 匿名类型

 C#3.0 新增功能03 隐式类型本地变量

 C#3.0 新增功能04 扩展方法

 C#3.0 新增功能05 分部方法

 C#3.0 新增功能06 对象和集合初始值设定项

 C#3.0 新增功能07 查询表达式

 C#3.0 新增功能08 Lambda表达式

 C#3.0 新增功能09 LINQ  基础01 语言集成查询

 C#3.0 新增功能09 LINQ  基础02 LINQ 查询简介

 C#3.0 新增功能09 LINQ  基础03 LINQ 和泛型类型

 C#3.0 新增功能09 LINQ  基础04 基本 LINQ 查询操作

 C#3.0 新增功能09 LINQ  基础05 使用 LINQ 进行数据转换

 C#3.0 新增功能09 LINQ  基础06 LINQ 查询操作中的类型关系

 C#3.0 新增功能09 LINQ  基础07 LINQ 中的查询语法和方法语法

 C#3.0 新增功能09 LINQ  基础08 支持 LINQ 的 C# 功能

 C#3.0 新增功能09 LINQ  标准查询运算符 01 概述

 C#3.0 新增功能09 LINQ  标准查询运算符 02 查询表达式语法

 C#3.0 新增功能09 LINQ  标准查询运算符 03 按执行方式的分类

 C#3.0 新增功能09 LINQ  标准查询运算符 04 运算

 C#3.0 新增功能10 表达式树 01 简介

 C#3.0 新增功能10 表达式树 02 说明

 C#3.0 新增功能10 表达式树 03 支持表达式树的框架类型

 C#3.0 新增功能10 表达式树 04 执行表达式

 C#3.0 新增功能10 表达式树 05 解释表达式

 C#3.0 新增功能10 表达式树 06 生成表达式

 C#3.0 新增功能10 表达式树 07 翻译(转换)表达式

 

C# 2.0


微软于2005年11月发布了.NET Framework 2.0,同时发布了Visual Studio 2005,同步对应的C#升级到了2.0版本。


  •  C#2.0 新增功能01 分部类与分部方法


  •  C#2.0 新增功能02 泛型


  •  C#2.0 新增功能03 匿名方法


  •  C#2.0 新增功能04 可以为 null 的类型


  •  C#2.0 新增功能05 迭代器


  •  C#2.0 新增功能06 协变与逆变


 C#2.0 新增功能07 getter/setter 单独可访问性


除现有功能以外的其他 C# 2.0 功能:


  • 方法组转换(委托)


  • 静态类


  • 委托推断


C# 1.2


随 Visual Studio 2003 一起提供的 C# 版本 1.2。 它对语言做了一些小改进。 


最值得注意的是,从此版本开始,当 IEnumerator 实现 IDisposable 时,foreach 循环中生成的代码会在 IEnumerator 上调用 Dispose。


C# 1.0


C# 1.0 的主要功能包括:



  • 结构


  • 接口


  • 事件


  • 属性


  • 委托


  • 表达式


  • 语句


  • 特性

 

C# 与 .NET Framework 对应关系


下表中列出 C#、.NET、VS版本对应关系



C#发展史


https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-version-history


推荐阅读

(点击标题可跳转阅读)

聊一聊C#8.0中的await foreach

C#8.0可空引用类型的使用注意要点

C#8.0两个有趣的新特性以及gRPC


看完本文有收获?请转发分享给更多人

关注「DotNet」加星标,提升.Net技能 

好文章,我在看❤️

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存